package com.cicc.beergamevirtualsimulationsystem.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.cicc.beergamevirtualsimulationsystem.common.constant.RecordConstant;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.springframework.boot.context.properties.bind.DefaultValue;

/**
 * 记录实体类
 */
@Data
@TableName("record")
public class RecordEntity {

  private static final long serialVersionUID = 1L;

  @TableId(type = IdType.ASSIGN_ID)
  private String id;
  /**
   * 房间id
   */
  private String roomId;
  /**
   * 用户id
   */
  private String userId;
  /**
   * 用户角色
   */
  private Integer userRole;
  /**
   * 用户名称
   */
  private String userName;
  /**
   * 周期
   */
  private Integer period;
  /**
   * 本期订单总量
   */
  private Integer orderTotal;
  /**
   * 本期发货总量
   */
  private Integer deliverTotal = 0;
  /**
   * 本期欠货总量
   */
  private Integer oweTotal;
  /**
   * 累计欠货总量
   */
  private Integer accumulateOweTotal;
  /**
   * 本期收货总量（工厂：制造产出量  其他：送货总量）
   */
  private Integer receiverTotal;
  /**
   * 本期预收货总量（工厂：计划生产量  其他：订货总量）
   */
  private Integer preReceiverTotal = 0;
  /**
   * 工厂产能（0级：0-100 1级：100-200）
   */
  private Integer capacity;
  /**
   * 期初库存
   */
  private Integer openingInventory;
  /**
   * 期末库存
   */
  private Integer endingInventory;
  /**
   * 上游id
   */
  private String upStreamId;
  /**
   * 上游名称
   */
  private String upStreamName;
  /**
   * 本期上游欠货总量
   */
  private Integer upStreamOweTotal;
  /**
   * 上游累计欠货总量
   */
  private Integer upStreamAccumulateOweTotal;
  /**
   * 库存成本
   */
  private Integer inventoryCost = 0;
  /**
   * 延期交付成本
   */
  private Integer deferredDeliveryCost = 0;
  /**
   * 预收货成本（工厂：生产成本  其他：订货成本）
   */
  private Integer preReceiverTotalCost = 0;
  /**
   * 本期利润
   */
  private Integer profit = 0;
  /**
   * 资产
   */
  private Integer asset = 0;

  /**
   * 是否订货（0：未订货 1：已订货）
   */
  private Integer isOrderGoods;
}
